#ifndef PLAYERS_FACTORY
#define PLAAYERS_FACTORY
#include "SonyPlayers.h"
#include "SamsungPlayers.h"

class PlayersFactory
{
protected:
	ConsoleMediator* director;
public:
	virtual DVDPlayer*	DVDPlayerDevice()=0;
	virtual VCRPlayer*	VCRPlayerDevice()=0;
	virtual CDPlayer*	CDPlayerDevice()=0;

};

class SonyPlayerFactory:public PlayersFactory{
public:
	SonyPlayerFactory(ConsoleMediator* director)
	{
		this->director = director;
	}
	DVDPlayer* DVDPlayerDevice(){
		return new SonyDVDPlayer(director);
	}
	VCRPlayer* VCRPlayerDevice(){
		return new SonyVCRPlayer(director);
	}
	CDPlayer* CDPlayerDevice(){
		return new SonyCDPlayer(director);
	}
};


class SamsungPlayerFactory:public PlayersFactory{
public:
	SamsungPlayerFactory(ConsoleMediator* director)
	{
		this->director = director;
	}
	DVDPlayer* DVDPlayerDevice(){
		return new SamsungDVDPlayer(director);
	}
	VCRPlayer* VCRPlayerDevice(){
		return new SamsungVCRPlayer(director);
	}
	CDPlayer* CDPlayerDevice(){
		return new SamsungCDPlayer(director);
	}
};

#endif //PLAAYERS_FACTORY